package com.bt.springboot.demo;

/**
 * 正则表达式
 *
 * 字符类
 * 		[abc] a、b或c
 * 		[^abc] 任何字符，除了a、b或c
 * 		[a-zA-Z] a到z或A到Z，两头的字母包括在内
 * 		[a-d[m-p]] a到d或m到p：[a-dm-p]（并集）
 * 		[a-z&&[def23]] d,e或f(交集)
 * 		[a-z&&[^bc]] a到z，除了b和c：[ad-c]（减去）
 * 		[a-z&&[^m-p]] a到z，而非m到p：[a-lq-z]（减去）
 *
 * 	预定义字符类
 * 		. 任何字符
 * 		\d 数字：[0-9]
 * 		\D 非数字：[^0-9]
 * 		\s 空白字符：[ \t\n\x0B\f\r]
 * 		\S 非空白字符: [^\s]
 * 		\w 单词字符：[a-zA-Z_0-9]
 * 		\W 非单词字符：[^\w]
 * 	以上正则匹配只能校验单个字符
 *	Greedy 数量词
 *		X? X,一次或一次也没有
 *		X* X,零次或多次
 *		X+ X,一次或多次
 *		X{n} X,恰好n次
 *		X{n,} X,至少n次
 *		X{n,m} X,至少n次,但是不超过m次
 * @author zkx
 * @Date 2022/8/7 1:36
 */
public class RegexDemo {

	public static void main(String[] args) {
		// 单个字符
		System.out.println("a".matches("[abc]"));
		System.out.println("a".matches("[^abc]"));
		// 多个字符
		System.out.println("asdada".matches("\\w*"));
		System.out.println("avca".matches("[a-zA-Z0-9]{4}"));
	}

}
